home *** CD-ROM | disk | FTP | other *** search
/ PD ROM 1 / PD ROM Volume I - Macintosh Software from BMUG (1988).iso / Fonts / PostScript® Samples / laserwriter-12.ps.1 < prev    next >
Encoding:
Text File  |  1986-12-03  |  24.1 KB  |  772 lines  |  [TEXT/ttxt]

  1.  
  2. %!Laser Prep version 12.  
  3. % Decompiled with rekamr and then cleaned up and slightly modified
  4. % for downloading over rs232 by Alan Crosswell,  Columbia U.
  5. % The main modification is to check to see if the "md" dictionary
  6. % is already installed.  This file takes about 25 seconds to run
  7. % over a 9600 baud line (using TranScript).  We make sure it is always
  8. % installed in the printer the same way that "ehandler.ps" is done;
  9. % an entry in crontab submits it once an hour.  If it's not installed,
  10. % then you will get an error complainging that md is an undefinedcommand.
  11.  
  12. %*** If you've changed your server loop password then edit the next line ***
  13. 0                    % server loop password
  14.  
  15. %----------------------------------------------------------------------
  16. % Check if the "md" dictionary is already installed.
  17. /md where                % stacks: [dict true] or [false]
  18. { %true: already installed -- nothing more to do
  19.     pop                    % pop the dict
  20.     pop                    % pop the password (not needed)
  21.     (\%\%[ Mac dictionary already installed... ]\%\%\n) print flush
  22.     stop                % all done
  23. }
  24. { %false: install it now but first check password (stack contains password)
  25.     serverdict begin 
  26.     statusdict begin
  27.     dup                    % make a copy of the password
  28.     checkpassword            % check password (eats it)
  29.     { %true: you gave the right password
  30.         (\%\%[ Mac dictionary will be installed. ]\%\%\n) print flush
  31.         exitserver            % exit server (eats copy of password)
  32.     }
  33.     { %false: you gave the wrong password
  34.         (\%\%[ Bad password!!! ]\%\%\n) print flush
  35.     pop                % pop extra copy of password
  36.     stop                % all done
  37.     } ifelse
  38.     end %statusdict
  39. } ifelse
  40.  
  41. %----------------------------------------------------------------------
  42. %{appledict version #12
  43. /md 200 dict def md begin
  44. /av 12 def
  45. /mtx matrix currentmatrix def
  46. /s30 30 string def
  47. /s1 ( ) def
  48. /pys 1 def
  49. /pxs 1 def
  50. /pyt 760 def
  51. /pxt 29.5 def
  52. /por true def
  53. /xl{translate}def
  54. /fp{pnsh 0 ne pnsv 0 ne and}def
  55. /vrb [
  56. {fp{gsave 1 setlinewidth pnsh pnsv scale stroke grestore}if newpath}
  57. {eofill}
  58. dup
  59. {newpath}
  60. 2 index
  61. dup
  62. {initclip eoclip newpath}
  63. {}
  64. dup
  65. 2 copy
  66. ] def
  67. /xdf{exch def}def
  68. currentscreen /spf xdf /rot xdf /freq xdf
  69. /doop {vrb exch get exec} def
  70. /psu{2 index .72 mul exch div /pys xdf div .72 mul /pxs xdf /pyt xdf /pxt xdf /por xdf}def
  71. /txpose{dup 1680 eq userdict /note known{{legal}{note}ifelse}{pop}ifelse
  72. dup 1212 eq{54 32.4 xl}if 1321 eq{8.64 -.6 xl}if
  73. pxs pys scale pxt pyt xl por not{270 rotate}if 1 -1 scale}def
  74. /obl {{0.212557 mul}{pop 0} ifelse} def
  75. /sfd {[ps 0 ps 6 -1 roll obl ps neg 0 0] makefont dup setfont} def
  76. /fnt{findfont sfd}def
  77. /bt{1 index and 0 ne exch}def
  78. /sa 6 array def
  79. /fs{1 bt
  80.     2 bt
  81.     4 bt
  82.     8 bt
  83.    16 bt
  84.    sa astore pop
  85. }def
  86. /mx1 matrix def
  87. /mx2 matrix def
  88. /gf{currentfont}def
  89.  
  90. /tc{32768 div add 3 1 roll 32768 div add 2t astore pop}def
  91. /3a [0 0 0] def
  92. /2t 2 array def
  93. /tp{3a astore pop}def
  94. /ee{}def
  95. /tt{gsave currentpoint 2 copy 2t aload pop qa 2 copy xl 3a aload pop exch dup 0 eq
  96. {pop}{1 eq{-1 1}{1 -1}ifelse scale}ifelse rotate pop neg exch neg exch xl moveto}def
  97. /te{currentpoint currentfont grestore setfont moveto}def
  98. /tb{/tg currentgray def 3 -1 roll 3 eq{1 setgray}if /ml 0 def /al 0 def}def
  99. /am{ml add /ml xdf}def
  100. /aa{[currentgray /setgray cvx]cvx exch dup wi pop dup al add /al xdf exch}def
  101. /th{3 -1 roll div 3 1 roll exch div 2 copy mx1 scale pop scale /scaleflag true def}def
  102. /tu{1 1 mx1 itransform scale /scaleflag false def}def
  103. /ts{1 1 mx1 transform scale /scaleflag true def}def
  104. /fz{/ps xdf}def
  105. /fx{dup exec}def
  106. /st{show pop pop}def
  107. /tm{
  108.       {
  109.       dup type dup /integertype eq exch /realtype eq or
  110.          {
  111.          dup ml mul
  112.          }
  113.          {
  114.          dup type /stringtype eq
  115.             {
  116.             rs
  117.             }
  118.             {
  119.             dup type /dicttype eq
  120.                {
  121.                setfont
  122.                }
  123.                {
  124.                dup type /arraytype eq
  125.                   {
  126.                   exec
  127.                   }
  128.                   {
  129.                   pop
  130.                   }ifelse
  131.                }ifelse
  132.             }ifelse
  133.          }ifelse
  134.       }forall
  135.    }def
  136. /es{3 -1 roll dup sa 5 get dup type /nulltype eq
  137. {pop4 pop}
  138. {
  139. sa 1 get {/ml ml .2 ps mul sub def}if  %Italic Hack Hack Hack
  140.    ne{fs}{pop}ifelse exch
  141.    dup 1 eq
  142.    {pop
  143.       al ml gt{/tv{ll}/ml ml al dup 0 ne{div}{pop}ifelse def}{/tv{st}/ml 1 def}ifelse def
  144.       tm
  145.    }
  146.    {
  147.    dup 3 eq
  148.    {pop
  149.    al ml gt{/tv{ll}/ml ml al dup 0 ne{div}{pop}ifelse def}{ml al sub 0 rmoveto /tv{st}/ml 1 def}ifelse def
  150.       tm
  151.    }
  152.    {
  153.    2 eq
  154.    {
  155.    al ml gt{/tv{ll}/ml ml al dup 0 ne{div}{pop}ifelse def}{ml al sub 2 div 0 rmoveto /tv{st}/ml 1 def}ifelse def
  156.       tm
  157.    }
  158.    {
  159.    /tv{ll}def
  160.    /ml ml al dup 0 ne{div}{pop}ifelse def
  161.       tm
  162.    }ifelse}ifelse}ifelse
  163.    }ifelse
  164. tg setgray
  165. }def
  166.  
  167. /pop4 {pop pop pop pop} def
  168. /gm{scaleflag{mx1 itransform}if moveto}def
  169. /ly{exch pop currentpoint exch pop sub 0 exch rmoveto}def
  170. /page{1 add /#copies xdf showpage}def
  171. /sk{systemdict /statusdict known}def
  172. /jn{sk{statusdict /jobname 3 -1 roll put}{pop}ifelse}def
  173. /pen {/pnsv xdf /pnsh xdf pnsh setlinewidth} def
  174. /dlin{currentpoint newpath moveto lineto currentpoint stroke grestore moveto}def
  175. /lin {currentpoint /pnlv xdf /pnlh xdf gsave newpath /@y xdf /@x xdf fp{pnlh @x lt {pnlv @y ge
  176. {pnlh pnlv moveto @x @y lineto pnsh 0 rlineto
  177. 0 pnsv rlineto pnlh pnsh add pnlv pnsv add lineto pnsh neg 0 rlineto}
  178. {pnlh pnlv moveto pnsh 0 rlineto @x pnsh add @y lineto 0 pnsv rlineto
  179. pnsh neg 0 rlineto pnlh pnlv pnsv add lineto} ifelse} {pnlv @y gt
  180. {@x @y moveto pnsh 0 rlineto pnlh pnsh add pnlv lineto 0 pnsv rlineto
  181. pnsh neg 0 rlineto @x @y pnsv add lineto} {pnlh pnlv moveto pnsh 0 rlineto
  182. 0 pnsv rlineto @x pnsh add @y pnsv add lineto pnsh neg 0 rlineto
  183. 0 pnsv neg rlineto} ifelse} ifelse
  184. closepath fill}if @x @y grestore moveto} def
  185. /barc {/@f xdf /@op xdf /@e xdf /@s xdf /@r xdf
  186. /@b xdf /@l xdf /@t xdf gsave
  187. @r @l add 2 div @b @t add 2 div xl 0 0 moveto
  188. @r @l sub @b @t sub mtx currentmatrix pop scale @f {newpath} if
  189. 0 0 0.5 @s @e arc
  190. mtx setmatrix @op doop grestore} def
  191. /doarc {dup 0 eq barc} def
  192. /doval {0 exch 360 exch true barc} def
  193. /dorect {/@op xdf currentpoint 6 2 roll newpath 4 copy
  194. 4 2 roll exch moveto 6 -1 roll lineto lineto lineto closepath
  195. @op doop moveto} def
  196. /dorrect {/@op xdf 2. div /@h xdf 2. div /@w xdf
  197. /@r xdf /@b xdf /@l xdf /@t xdf
  198. @t @b eq @l @r eq or{@t @l @b @r @op dorect}
  199.    {
  200.    @r @l sub 2. div dup @w lt{/@w xdf}{pop}ifelse
  201.    @b @t sub 2. div dup @w lt{/@w xdf}{pop}ifelse
  202.    @op 0 eq{/@w @w pnsh 2 div sub def}if    %this helps solve overlap gap for wide line widths
  203.    currentpoint
  204.    newpath
  205.    @r @l add 2. div @t moveto
  206.    @r @t @r @b @w arcto pop4
  207.    @r @b @l @b @w arcto pop4
  208.    @l @b @l @t @w arcto pop4
  209.    @l @t @r @t @w arcto pop4
  210.    closepath @op doop
  211.    moveto
  212.    }ifelse
  213. } def
  214. /pr{gsave newpath /pl{moveto /pl{lineto}def}def}def
  215. /pl{lineto}def
  216. /ep{dup 0 eq
  217.    {
  218.    {moveto}{lin}{}{}pathforall  %nothing but movetos and linetos should be called
  219.    pop grestore
  220.    }
  221.    {
  222.    doop grestore
  223.    }ifelse
  224. }def
  225. /bs 8 string def
  226. /bd{/bs xdf}def
  227. /bit {bs exch get exch 7 sub bitshift 1 and} def
  228. /bix {1 add 4 mul cvi} def
  229. /pp{exch bix exch bix bit}def
  230. /grlevel {64. div setgray} def
  231. /setpat {/bs xdf 9.375 0{pp}setscreen grlevel} def
  232. /setgry {freq rot {spf} setscreen grlevel} def
  233. /x4 {2 bitshift} def
  234. /d4 {-2 bitshift} def
  235. /xf {.96 mul exch 2 sub .96 mul exch} def
  236. /dobits
  237. {
  238. /bmode xdf
  239. save 9 1 roll
  240.    {
  241.    x4 /@dy xdf 2 sub x4 /@dx xdf /@idx xdf
  242.    .96 mul exch 2 sub exch xl 0 0 moveto xf
  243.    0 2 2 index 4 index 1.759 add 10 dorect clip newpath 0 0 moveto scale
  244.    bmode 0 eq bmode 4 eq or{1 setgray 1 @dy div 1 @dx div 1 1 2 dorect}if
  245.    bmode 3 eq bmode 7 eq or{1}{0}ifelse setgray
  246.    @idx 5 bitshift @dy bmode 4 eq bmode 5 eq bmode 7 eq or or [@dx 0 0 @dy 0 0]
  247.      {(%stdin)(r) file @dy d4 4 add @idx mul string readhexstring pop
  248.      dup length @idx x4 sub 4 bitshift string
  249.      dup 3 1 roll @dx 8 add d4 smooth} imagemask
  250.    }
  251.    {
  252.    /@dy xdf 2 sub /@dx xdf /@idx xdf
  253.    /@xs @idx string def
  254.    /@f (%stdin)(r) file def
  255.    /@p{@f @xs readhexstring pop}def
  256.    .96 mul xl 0 0 moveto xf scale
  257.    0 0 1 1 10 dorect clip newpath 0 0 moveto
  258.    bmode 0 eq bmode 4 eq or{1 setgray .25 @dy div .25 @dx div 1 1 2 dorect}if
  259.    bmode 3 eq bmode 7 eq or{1}{0}ifelse setgray
  260.    @p @p
  261.    @idx 3 bitshift @dy bmode 0 eq bmode 1 eq bmode 3 eq or or [@dx 0 0 @dy 0 0]
  262.    {@p} imagemask
  263.    @p @p pop4
  264.    }ifelse
  265. restore
  266. } bind def
  267.  
  268. /mfont 14 dict def
  269. /wd 14 dict def
  270. /mdef {mfont wcheck not{/mfont 14 dict def}if mfont begin xdf end} def
  271. /dc {transform round .5 sub exch round .5 sub exch itransform} def
  272. /cf{{1 index /FID ne {tmp 3 1 roll put}{pop pop}ifelse}forall}def
  273. /mv{tmp /Encoding macvec put}def
  274. /bf{
  275. mfont begin
  276. /FontType 3 def
  277. /FontMatrix [1 0 0 1 0 0] def
  278. /FontBBox [0 0 1 1] def
  279. /Encoding macvec def
  280. /BuildChar
  281.   {
  282.   wd begin
  283.     /cr xdf
  284.     /fd xdf
  285.     fd /low get cr get 2 get -1 ne
  286.     {
  287.     fd begin
  288.       low cr get aload pop
  289.       sd
  290.       low cr 1 add get 0 get
  291.       sh
  292.       sw
  293.     end
  294.     /sw xdf
  295.     /sh xdf
  296.     sw div /clocn xdf
  297.     dup 0 ne {0 exch sh div neg dc xl}{pop}ifelse
  298.     exch sw div /coff xdf
  299.     exch sw div /cloc xdf
  300.     /bitw clocn cloc sub def
  301.     sw sh div 1 scale
  302.     sw div 0 coff 0 bitw coff add 1 setcachedevice
  303.     coff cloc sub 0 dc xl
  304.     cloc .5 sw div add 0 dc newpath moveto
  305.     bitw 0 ne
  306.       {0 1 rlineto bitw .5 sw div sub 0 rlineto 0 -1 rlineto
  307.         closepath clip
  308.       sw sh false [sw 0 0 sh neg 0 sh]{fd /hm get}imagemask}if
  309.     } if
  310.   end
  311.   } def
  312. end
  313. mfont definefont pop
  314. } def
  315. /wi{save exch /show{pop}def
  316. stringwidth 3 -1 roll restore}def
  317. /aps {0 get 124 eq}def
  318. /apn {s30 cvs aps} def
  319. /xc{s30 cvs dup}def
  320. /xp{put cvn}def
  321. /scs{xc 3 67 put dup 0 95 xp}def
  322. /sos{xc 3 79 xp}def
  323. /sbs{xc 1 66 xp}def
  324. /sis{xc 2 73 xp}def
  325. /sob{xc 2 79 xp}def
  326. /sss{xc 4 83 xp}def
  327. /dd{exch 1 index add 3 1 roll add exch} def
  328. /smc{moveto dup show} def
  329. /kwn{dup FontDirectory exch known{findfont exch pop}}def
  330. /fb{/ps ps 1 add def}def
  331.  
  332. /mb
  333. {dup sbs kwn
  334.    {
  335.    exch{pop}{bbc}{} mm
  336.    }ifelse
  337. sfd
  338. }def
  339. /mo
  340. {dup sos kwn
  341.    {
  342.    exch{pop}{boc}{} mm
  343.    }ifelse
  344. sfd
  345. }def
  346. /ms
  347. {dup sss kwn
  348.    {
  349.    exch{pop}{bsc}{} mm
  350.    }ifelse
  351. sfd
  352. }def
  353. /ao
  354. {dup sos kwn
  355.    {
  356.    exch dup ac pop
  357.    {scs findfont /df2 xdf}{aoc}{} mm
  358.    }ifelse
  359. sfd
  360. }def
  361. /as
  362. {dup sss kwn
  363.    {
  364.    exch dup ac pop
  365.    {scs findfont /df2 xdf}{asc}{} mm
  366.    }ifelse
  367. sfd
  368. }def
  369. /ac
  370.    {
  371.    dup scs kwn
  372.       {exch /ofd exch findfont def
  373.       /tmp ofd maxlength 1 add dict def
  374.       ofd cf mv
  375.       tmp /PaintType 1 put
  376.       tmp definefont}ifelse
  377.    }def
  378. /mm{
  379. /mfont 10 dict def
  380. mfont begin
  381. /FontMatrix [1 0 0 1 0 0] def
  382. /FontType 3 def
  383. /Encoding macvec def
  384. /df 4 index findfont def
  385. /FontBBox [0 0 1 1] def
  386. /xda xdf
  387. /mbc xdf
  388. /BuildChar { wd begin
  389.   /cr xdf
  390.   /fd xdf
  391.   /cs s1 dup 0 cr put def
  392.   fd /mbc get exec
  393.   end
  394. } def
  395. exec
  396. end
  397. mfont definefont} def
  398. /bbc
  399. {
  400.   /da .03 def
  401.   fd /df get setfont
  402.   gsave
  403.     cs wi exch da add exch
  404.   grestore
  405.   setcharwidth
  406.   cs 0  0 smc
  407.     da  0 smc
  408.     da da smc
  409.      0 da moveto show
  410. } def
  411. /boc
  412. {
  413.   /da 1 ps div def
  414.   fd /df get setfont
  415.   gsave
  416.     cs wi
  417.     exch da add exch
  418.   grestore
  419.   setcharwidth
  420.   cs 0  0 smc
  421.     da  0 smc
  422.     da da smc
  423.      0 da smc
  424.   1 setgray
  425.      da 2. div dup moveto show
  426. } def
  427. /bsc
  428. {
  429.   /da 1 ps div def
  430.   /ds .05 def %da dup .03 lt {pop .03}if def
  431.   /da2 da 2. div def
  432.   fd /df get setfont
  433.   gsave
  434.     cs wi
  435.     exch ds add da2 add exch
  436.   grestore
  437.   setcharwidth
  438.   cs ds da2 add .01 add 0 smc
  439.       0 ds da2 sub xl
  440.       0  0 smc
  441.      da  0 smc
  442.      da da smc
  443.       0 da smc
  444.   1 setgray
  445.       da 2. div dup moveto show
  446. } def
  447. /aoc
  448. {
  449.   fd /df get setfont
  450.   gsave
  451.     cs wi
  452.   grestore
  453.   setcharwidth
  454.   1 setgray
  455.   cs 0 0 smc
  456.   fd /df2 get setfont
  457.   0 setgray
  458.   0 0 moveto show
  459. }def
  460. /asc
  461. {
  462.   /da .05 def
  463.   fd /df get setfont
  464.   gsave
  465.     cs wi
  466.     exch da add exch
  467.   grestore
  468.   setcharwidth
  469.   cs da .01 add 0 smc
  470.       0 da xl
  471.   1 setgray
  472.       0 0 smc
  473.   0 setgray
  474.   fd /df2 get setfont
  475.       0 0 moveto show
  476. }def
  477.  
  478. /mf{gsave
  479. 32 760 xl 1 -1 scale
  480. 1 1 pen
  481. 128 152 moveto
  482. 27.5 27.5 693.5 522.5 0 dorect
  483. 6 6 pen
  484. 63. 63. 657. 486. 0 dorect
  485. 48 fz F /|B---1Times fnt pop
  486. (Manual Feed)show
  487. 118 275 moveto
  488. 14 fz F /|----1Times fnt pop
  489. (document: )show
  490. sk{statusdict /jobname get dup null ne{show}{pop}ifelse}if
  491. 118 362 moveto
  492. (Manual Feed Instructions)show
  493. 127 398 moveto
  494. (1.  Wait until the yellow light on the front of your)show
  495. 145 416 moveto
  496. (LaserWriter comes on steadily \(not flashing\).)show
  497. 127 458 moveto
  498. (2.  Insert your paper or envelope in the manual feed)show
  499. 145 478 moveto
  500. (guide on the right side of the LaserWriter.)show
  501. 127 517 moveto
  502. (3.  Repeat steps 1 and 2 until your document is)show
  503. 145 537 moveto
  504. (completed.)show
  505. 0 page
  506. sk{statusdict /manualfeed true put 5 dly}if
  507. grestore}def
  508. /dly{
  509. usertime exch 1000 mul add
  510.    {
  511.    dup usertime le{exit}if
  512.    }loop
  513. pop
  514. }def
  515. /lsf {FontDirectory {pop dup apn{= flush}{pop}ifelse}forall /* = flush}def
  516. /dl{gsave 0 setlinewidth 0 setgray}def
  517.  
  518. /T true def
  519. /F false def
  520. /6a 6 array def
  521. /2a 2 array def
  522. /5a 5 array def
  523. /qs{3 -1 roll sub exch 3 -1 roll sub exch}def
  524. /qa{3 -1 roll add exch 3 -1 roll add exch}def
  525. %multiply point: pt factor qm newpt
  526. /qm{3 -1 roll 1 index mul 3 1 roll mul}def
  527. /qn{6a exch get mul}def
  528. /qA .166667 def /qB .833333 def /qC .5 def
  529. /qx{
  530.    6a astore pop
  531.    qA 0 qn qB 2 qn add   qA 1 qn qB 3 qn add
  532.    qB 2 qn qA 4 qn add   qB 3 qn qA 5 qn add
  533.    qC 2 qn qC 4 qn add   qC 3 qn qC 5 qn add
  534. }def
  535. /qp{6 copy 12 -2 roll pop pop}def
  536. /qc{qp qx curveto}def
  537. /qi{{4 copy 2a astore aload pop qa .5 qm newpath moveto}{2 copy 6 -2 roll 2 qm qs 4 2 roll}ifelse}def
  538. /qq{{qc 2a aload pop qx curveto}{4 copy qs qa qx curveto}ifelse}def
  539. /pt{gsave currentpoint newpath moveto}def
  540. /qf{gsave eofill grestore}def
  541. /tr{currentgray currentscreen bs 5a astore pop /fillflag 1 def}def
  542. /bc{/fillflag 0 def}def
  543. /ec{
  544.    1 and 0 ne
  545.    {currentgray currentscreen bs 5a aload pop bd setscreen setgray 0 doop bd setscreen setgray}
  546.    {newpath}ifelse
  547. }def
  548. /bp{currentpoint newpath 2 copy moveto currentgray currentscreen bs 5a astore pop}def
  549. /eu{
  550.    fillflag 0 ne
  551.    {
  552.    gsave currentgray currentscreen bs
  553.    5a aload pop bd setscreen setgray
  554.    4 ep
  555.    bd setscreen setgray
  556.    }if
  557.    fp{0 ep}{grestore newpath}ifelse
  558. }def
  559.  
  560. /sm
  561. {
  562. dup 0 exch
  563. {32 eq{1 add}if}forall
  564. }
  565. def
  566. /ll
  567. {
  568. 3 1 roll exch dup .0001 lt 1 index -.0001 gt and
  569. {pop pop pop}
  570. {sub dup 0 eq
  571.    {
  572.    pop show
  573.    }
  574.    {
  575.    1 index sm dup 0 eq 3 index 0 le or
  576.       {
  577.       pop length div
  578.       0 3 -1 roll ashow
  579.       }
  580.       {
  581.       10 mul exch length add div
  582.       dup 10 mul 0 32 4 -1 roll 0 6 -1 roll awidthshow
  583.       }ifelse
  584.    }ifelse
  585. }ifelse
  586. }def
  587. /ss
  588. {  /pft currentfont def sa aload pop pop /|----2Symbol 4 1 roll
  589.    {pop{as}}
  590.    {{{ao}}{{fnt}}ifelse}ifelse
  591.    exch pop exec exch pop
  592. }def
  593. /pf{pft dup setfont}def
  594. /rs
  595. {
  596.    sa 2 get
  597.    {
  598.    gsave
  599.    1 index 0
  600.    currentfont
  601.    dup /FontInfo known
  602.       {
  603.       /FontInfo get
  604.       dup /UnderlinePosition known
  605.          {
  606.          dup /UnderlinePosition get 1000 div ps mul
  607.          }
  608.          {
  609.          ps 10 div neg   %15 makes line closer to text
  610.          }ifelse
  611.       exch
  612.       dup /UnderlineThickness known
  613.          {
  614.          /UnderlineThickness get 1000 div ps mul
  615.          }
  616.          {
  617.          pop
  618.          ps 15 div       %20 makes slightly narrower line
  619.          }ifelse
  620.       }
  621.       {
  622.       pop
  623.       ps 10 div neg   %15 makes line closer to text
  624.       ps 15 div       %20 makes slightly narrower line
  625.       }ifelse
  626.    setlinewidth
  627.    0 setgray
  628.    currentpoint 3 -1 roll sub moveto
  629.    sa 4 get{gsave currentlinewidth 2. div dup rmoveto currentpoint xl 2 copy rlineto
  630.    stroke grestore}if
  631.    sa 3 get sa 4 get or 3 1 roll 2 index{gsave 1 setgray 2 copy rlineto stroke grestore}if
  632.    rlineto{strokepath 0 setlinewidth}if stroke
  633.    grestore
  634.    }if
  635.    tv
  636. }
  637. def
  638.  
  639. /macvec 256 array def
  640. macvec 0
  641. /Times-Roman findfont /Encoding get
  642. 0 128 getinterval putinterval macvec 39 /quotesingle put
  643.  /dotlessi /grave /circumflex /tilde /cedilla /registerserif /copyrightserif /trademarkserif
  644. macvec 0 8 getinterval astore pop
  645.  /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute
  646.  /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave
  647.  /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute
  648.  /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis
  649.  /dagger /ring /cent /sterling /section /bullet /paragraph /germandbls
  650.  /registersans /copyrightsans /trademarksans /acute /dieresis /notequal /AE /Oslash
  651.  /infinity /plusminus /lessequal /greaterequal /yen /mu /partialdiff /summation
  652.  /product /pi /integral /ordfeminine /ordmasculine /Omega /ae /oslash
  653.  /questiondown /exclamdown /logicalnot /radical /florin /approxequal /Delta /guillemotleft
  654.  /guillemotright /ellipsis /space /Agrave /Atilde /Otilde /OE /oe
  655.  /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /divide /lozenge
  656.  /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl
  657.  /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute
  658.  /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex
  659.  /apple /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /asciicircum /asciitilde
  660.  /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
  661. macvec 128 128 getinterval astore pop
  662. FontDirectory
  663. {exch dup s30 cvs /@s xdf @s aps
  664.    {pop pop}
  665.    {exch dup length dict /tmp xdf
  666.       cf
  667.       /Symbol ne {mv} if
  668.       /@i false def /@o false def /@b false def
  669.       mark @s (Italic) search {/@i true def} if (Oblique) search {/@o true def} if
  670.       (Bold) search {/@b true def} if (Roman) search pop (-) search pop /@s xdf cleartomark
  671.       @s cvn dup /Symbol eq{pop 50}{/Courier eq{51}{49}ifelse}ifelse
  672.       s30 0 @s length 6 add getinterval dup 6 @s putinterval dup 0 (|-----) putinterval
  673.       @b {dup 1 66 put} if @i @o or {dup 2 73 put} if % @o {dup 2 79 put} if
  674.       dup 5 4 -1 roll put
  675.       cvn tmp definefont pop
  676.    }ifelse
  677. }forall
  678. /_--C-2Symbol /Symbol findfont /tmp 1 index maxlength 1 add dict def cf tmp /PaintType 1 put tmp definefont
  679. /|----4Seattle /Helvetica findfont dup length 1 add dict /tmp xdf cf mv
  680. /mxv [/zero /one /two /three /four /five /six /seven /eight /nine /comma /period /dollar /numbersign
  681. /percent /plus /hyphen /E /parenleft /parenright /space] def
  682. tmp /Metrics 21 dict dup begin mxv{600 def}forall end put
  683. tmp begin /FontBBox FontBBox [0 0 0 0] astore def end
  684. tmp definefont pop
  685. /od{txpose 10 fz 0 fs F /|----3Courier fnt pop}def
  686. /op{/scaleflag false def /pm save def}def
  687. /cp{pm restore}def
  688. end
  689. % eexec reads the PSHX resources
  690. currentfile eexec
  691. 652E29AE551935C9A82086907FB876D510EC4D451220E0F80D63DBC0EA379346
  692. C055B673F7BED773F332BDE5107DC0B1322DF36267320C226DBEBD9299B29C86
  693. 5D1876ABB7E19F6A45F52C588810FD0A9FFBB1073AD1B6BDCA3D2BAE3283AC88
  694. 35259ADDA98433676B8B757B19473F2C0C3D36AF93B3DD15AFC47F4D3BECB87B
  695. ABAAB5613FCD319A712E7D4A8C5A3C0BA96A376CC93C52ABDE43A980670C1E6B
  696. 78E4D14D5CA032FE07255D5E5A084CCF4B8E23C64F574932EA53E8CD7F00F47B
  697. 4179A6DAFE3BC43B1D091902E6E4B5699C7322FC23B5FBE833E4114C4544E29E
  698. 6225A5B48E6F2A840F44E827681E1AC9F28EB8FEC32105CA4056D863BCAECE65
  699. 1AAF3B12BC38A77CA241A66FAE92939A6EFACD49711E5D7355E634041C378FFC
  700. 1F3BF8B903E5F8961E7480259EB0AA90B0C38E75D264ACE71F1307D4894BFDCF
  701. 9C9D0F3C026BA190A3F6F7E06F3ED092E8CF0D4F22AD6C55C6FED836290F9611
  702. 442BF4DEDBBA0B67D2AF782A796D474ECE7B2B788B4771D4BBCDF0E8F48A2874
  703. D1CF78D3B1C5AA2987C6A22135B1508C7C5EC5AD86ABAE8D1E34A5314F703337
  704. C7A2C0CF52DBBF046F0BD67BE5E65AAD9CE43FAB6E7C9F669801849C9366E5AE
  705. 76C77D8DDBF188CD18C120FEA4C1B510FC00434A2629BB82A9336EB36A5D5552
  706. F4971ED40EF839771762E60509A2A3214DEA9C58C2E53E76CE24B99E3C472719
  707. C66B31A38DE21135FF1390CCA7E0F6B92CEEAF9524317A427DA7CB9B4ED08BF0
  708. 9868FCD9ECAAFF2C520E0EAAB8730FD6CE85B4ACAEE82FC53C5D948C8858A8A3
  709. CF945546556FB3DC9CE69D87BD793DAC57E3F4FB9D056C163C3EE134EDDF7B7D
  710. 186C9A0D79759CD9BF94A4B1E2A6070727DFC08806828B53799090725D4B2D6E
  711. 9BCB6C2B90AA4E47D1774F3A58868E4EB3464C7FB07854CE66E3AB03A5D515A1
  712. 69AC0EA62BAE9A2A419C9AAB14F09A864F4228A098FB288B60E87B85EB16A6D4
  713. EF27B835BAC40E45BF48F78E6CE74AE0C1E81316F630BFE0D7661116B6A92187
  714. 9A1036437280BDA64F85CB37CA0DDBF827C3E4885F1C75E3C84CB8EBED892810
  715. 450DA08029A611AEE126FD6BEFF6830EDA28E4C54649D93C23270703B2F7FEAA
  716. A6524192A2D7F1151B2827EF4B27C823D385EA683F024299B1EFE64871AFD4CD
  717. 6C54C484AA53030CC7F8254BF9E525A00E51867660A3409BECA98DEB37A568F6
  718. D1026ECBFCCF8C9B9BFD11CE017CB2271E7BDEE1D459FFA23062D5B42552C04B
  719. 9BC02C0D7F5CC926ABE694A185FDE2ECC76506DEF1435CBC1225475E4D98A04C
  720. 2CF1DD03915DEB659BC23DE29A6E6734CF49CE39A1BF450A55B0F14D350E79B0
  721. 5C690B84003AB669678B3A416828F376F78946C44009A14A49ED90980B6E4589
  722. 56D188D9AC3FA7F781C8670C83B403B73237B6B0C2862C51C33D559C005D6C9D
  723. D39914B79DBE81291EF8D7CE3EC844176FB7C08A6F344E26C0563C29FCC3B0CB
  724. 2CCCF9412832300CBCDE6BFF39A8804ACCB8375752EEECB1BBA0851ED8DF9E17
  725. 4A5C747E354402DE217C6A7DE35BDE29F50284F66EC5F9DC0032FE3E05842472
  726. 6F9E50555FCBEFF246264D503DCFEB5C5F3384798E5C622FD0450DC62DCE36CA
  727. 9007DBA236A7CE56A57C0B0C531AC5766684DE4BDD2DFEC3BA4D99B930B2EDB2
  728. 0C2AC0F032BB6E5C75AF97AE24DD7FF33FA0F643BBB39331E7E4A474ED5612A1
  729. 7AEF558F8281D4E9EC01AC3D04C4A4C4B8A67F7A6199BA35448298E177554A20
  730. 81DFA1E8D1BC88BDB9938CFEC498918BF3AD690924F295A03D17F28C5FF47F43
  731. D495B74827BD54A2524F53750D4C030843986C97B59A63E08EFB9B14582088BA
  732. FC257BCEF07F2E4B8DCADCC9FAEF7388055483470D5FA4A8CE8CC118CA91FAA5
  733. B0DCCC7F3638A2F9F40628186990C2EE0E25B0FB34DAD8521A6735485ADBE4DD
  734. 7A937036C5EF7E741FF4543FDEE19DD0CFF59A89656F80F8E5E84C10878CB651
  735. 0DD3C3C7A346AC1877FFA88E5ADDCFF95D37163A5350AA5C71BB801ACB0D0FA1
  736. 154DE2C2D039CAAB85F389554044E8F90F9992DEBCCBEACE55F69E31061FB052
  737. A25343ECBEDE16C8999218AF370378901B36655D83D4B9BC5F4F43B361BB2134
  738. 3A88E0350E5C4342407DEFA79877B3C5DAFE15B0F58520FDBE5B8362BE3549AE
  739. 03BD77CDFEC962C539252312ECC5D841F55BEBAD9F7BB03A2D2CAC844E82A568
  740. 7CB2D8E599E356D9A23802439B056F1CC104F9F0D3F01EE2593C59483154FCCA
  741. 3973F487593C9DE94FC0863B6669100B46AFC5B261493A4B50CB9F802EBC31AB
  742. 7B7903A1957EA078A0C4D90E204E44335131C9B65F15D3E5C9A87ADAA7FE5E49
  743. D3654F021F460E5E2AC56A69E8F50E45B0D859D8EC27333DF2AE409015973D7E
  744. ED59F45720DD271D081F3DF62032358E0D4B1D4A528FB4E96A6B2007E13E55E2
  745. 10DAED32AF76F3396D60295D116EC4EE4D42DF4BC764ED9BC11A369FE070815F
  746. FEB5662551561354788EFA98612D09BC964428767E0CBE5DC3EC5B599E9B2074
  747. AA3D446752A4E34485C3D111034676AF67EE5345263E883CF46C8BEF1BD4D51D
  748. D2B625481880254888AB0C186E2D0549F657E59026E2A3C49FE0DFD2A2CAD076
  749. 586B6F248C11E81C41F9525A5D2F77CE5D76FD9104F39F4E4E31CF75045A9061
  750. B16B20CDC2AFD0595F5B6ADF45CA0DC6A37C4ED090AADCFE9EA7847217777A8E
  751. 88C7FBC247EC02973EF656BF1A4A2E71ED21142EC48CC9FDBF5EAE8B46C3E477
  752. 59D9C304C6862D43AF1DE66B44B4AC18B47C6518FA5747D3D8C9A19612DAEE4E
  753. 83C141561421A1360FD847997148932568D3E6CA93BF0D5874BCD90A3A363739
  754. 1FAD35F574797D6160BD4F1AEC3A326D5D73C9BD699C41524B18BC6CDF9169E7
  755. 51FFAB19B9FD7ABE3B2F9D3E0F67ADB05CA85D484ACBC84E287DAA1EDC3BCD95
  756. 694EF05F77A59004B1C3E223AA4A5A063EC238B4A5A25D335FA51B165963621F
  757. 57B7F2C54E59CFED574370399A03E2DFB0F1E35678A6A509A912ED27AD755C67
  758. E045CC1CFEFE41CAD8EA73DD666757D90170EF9C3F218120F38FC1D38224160E
  759. 7F5DE6BDF39665FF231079296B94A7DE674847D299C711E77C9DA408FF9CDCFA
  760. 8F7FE175BE275EB0AE21512D074DBDDCF1CDF75642EF656E2555F9F3E60A2822
  761. F214CC81EEF0E4866387799F21B1F4B296E7F3A2206795457A33E85B397A5F20
  762. 10809D1F43B2267BD762A6CC12DF31BB0817496FE666A6955CD2BA96549B4D1F
  763. 827E54A835ABA03B1079F1F5C3C4D2F4F698D3C235BDFA829F079A0DCF788913
  764. 77B31EBACF4E61A01487ED1F80ABBF5CF000B1EAA8527EC6064AB06B921916CB
  765. 65045B86E9BB2D2E854C5124C218B6FDA0732ABF424EE1696BC86F8987E48CC5
  766. 038C8A557E9534A48E7C55F21F021AA7A370A7CC1B55E777972883433F454450
  767. D18ABFC489D5AA518171884FB7103D92E479ECAEA449341F7C8DB1BD39ECB1ED
  768. 45AF5D9628EF37CAF8DB3C9A65856A97FB9698DD68F8BE27B3C4174F1838C7A0
  769. 674A9460333A059BF214C0690F35BC0352AF9B82CB0F46EAE63A3C0302B4118D
  770. 9E65479030F1EFE34909FA458E31A500483B68601B480D51B7FFCD004A1B5360
  771. 905B88019BC3EF0FF064AC6477442573C18EF7090E2C08EAA1A9
  772. Maj (7)>>